package com.huyun.web.concurrency.threadLocal;

/**
 * ThreadLocal 源码分析
 *
 * @author huyunqiang
 * @date 2019/7/6 15:35
 */
public class ThreadLocalSourse {
    //设置值的方法
//    public void set(T value) {
//        //1.获取当前线程
//        Thread t = Thread.currentThread();
//        //2.从线程中获取该线程的成员属性 ThreadLocal.ThreadLocalMap
//        ThreadLocalMap map = getMap(t);
//        //将值放入Map中
//        if (map != null)
//            map.set(this, value);
//        else
//            //先创建，在设置值
//            createMap(t, value);
//    }
//
//    //获取值的方法
//    public T get() {
//        Thread t = Thread.currentThread();
//        ThreadLocalMap map = getMap(t);
//        if (map != null) {
//            ThreadLocalMap.Entry e = map.getEntry(this);
//            if (e != null) {
//                @SuppressWarnings("unchecked")
//                T result = (T)e.value;
//                return result;
//            }
//        }
//
//        //如果没有设置，会调用，设置一个value为null
//        return setInitialValue();
//    }
}
